#! /usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2020-04-03 20:14
# @Author : youngchaolin

# 1
def func():
    count = 1
    while 1:
        count += 1
        print(count)
        # return结束函数，while中也就结束了循环
        return


func()


# 2 写一个函数，传入一个字典，判断字典里value的长度，如果value长度大于2，只保留前两个长度的内容，将新的结果返回
def get_new_dict(dic):
    new_dic = {}
    for key in dic:
        new_dic[key] = dic.get(key)[0:2]
    return new_dic


print(get_new_dict({'name': 'haaaa', 'hobby': 'football', 'score': 'many'}))


# 3 写一个函数，此函数值接受一个参数并且参数类型必须是列表类型，此函数完成的功能是返回调用者一个字典，键值对分别是列表元素的索引-元素值
# 如传入['messi','ronald','herry','kaka']，返回{1:'messi',2:'ronald',3:'herry',4:'kaka'}
def get_dict_from_list(li):
    # if type(li) == type([]):
    if isinstance(li, list):
        dic = {}
        for index in range(len(li)):
            dic[index] = li[index]
        return dic
    else:
        return '错误的数据类型'


print(get_dict_from_list(['messi', 'ronald', 'herry']))
print(get_dict_from_list('haha'))


# 4 写一个函数，接受四个参数分别是：姓名、性别、年龄、学历。
# 用户输入这个四个内容，传入到函数后，函数接受到这四个内容，将内容追加到一个文件中
# 支持用户持续输入，按Q或者q退出，性别默认是男，如果用户输入女，则性别更换为女
def append_to_file(name, age, background, gender='男'):
    with open('student_info.txt', encoding='utf-8', mode='a') as f1:
        f1.write('{}\t{}\t{}\t{}\n'.format(name, gender, age, background))


while 1:
    str = input('请输入姓名，性别，年龄，学历，按空格隔开')
    if str.upper() == 'Q': break
    if len(str.split()) != 4:
        print('输入信息不是4个')
    else:
        li = str.split()
        if li[2].isdecimal():
            name = li[0]
            gender = li[1]
            age = int(li[2])
            background = li[3]
            # 调用函数
            if gender == '女':
                append_to_file(name, age, background, gender)
            else:
                append_to_file(name, age, background)
        else:
            print('输入年龄格式错误，请重新全部输入')


# 5 写函数，用户传入修改的文件名，与要修改的内容，执行函数完成整个文件批量的修改操作
import os
def modify_file(filepath,old,new):
    with open(filepath, encoding='utf-8', mode='r') as f1, \
            open(filepath+'_bak', encoding='utf-8', mode='w') as f2:
        for line in f1:
            # 读一行，修改一行
            new_line=line.replace(old,new)
            # 修改一行，写一行
            f2.write(new_line)
    # 删除旧文件
    os.remove(filepath)
    # 重命名新文件
    os.rename(filepath+'_bak',filepath)

modify_file('文件的修改.txt','clyang','超哥')